#定义gcc
CC := gcc

#定义子目录
SUBDIRS := etc hal lylib main obj

#定义mosquitto目录
BIN_DIR := mosquitto

#定义最终的可执行文件
BIN := mosqu_pub

#定义.o文件目录
OBJS_DIR := obj


#定义清除命令
RM := rm

#传参下一层makefile
export CC OBJS_DIR BIN_DIR BIN

#总目标
all:check_bin compile_src

#创建bin目录
check_bin:
	mkdir -p $(BIN_DIR)

#编译子目录中的源码
compile_src:
	set -e;for i in $(SUBDIRS); do $(MAKE) -C $$i; done

#清除文件
.PHONY:clean cleanall
clean:
	$(RM) -rf $(OBJS_DIR)/*.o

cleanall:
	$(RM) -rf $(OBJS_DIR)/*.o $(BIN_DIR)/$(BIN)

